package com.pzhu.controller;

import com.pzhu.service.LoginService;
import com.pzhu.service.impl.LoginServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.io.IOException;

public class LoginServlet extends HttpServlet {
    private final LoginService loginService = new LoginServiceImpl();

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//      设置编码
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
//      获得数据
        String uname = req.getParameter("uname");
        String pwd = req.getParameter("pwd");
//      调用service层处理数据
        boolean flag = loginService.checkUser(uname, pwd);
//      处理结果
        if (flag) {
//            新建cookie
            Cookie cookie = new Cookie("userId", Integer.toString(loginService.selectUidByUName(uname)));
            cookie.setMaxAge(7 * 24 * 3600);//设置生存时间 单位 /秒
            cookie.setPath("/ss/lbc");//生效路径
//            添加进resp，返回浏览器
            resp.addCookie(cookie);

//             新建 Session 服务器记录
            HttpSession session = req.getSession();
//            设置session属性
            session.setMaxInactiveInterval(1 * 1 * 3600);//设置生存时间 单位 /秒
            session.setAttribute("userId", loginService.selectUserById(Integer.parseInt(cookie.getValue())));
//          登录成功重定向
            resp.sendRedirect("/ss/main");
            return;

        } else {
//          添加用户数据，用于登录失败的提示语
            req.setAttribute("str", uname + "登录失败");
//          登录失败，请求转发到page
            req.getRequestDispatcher("/page").forward(req, resp);
//          请求转发用return结束
            return;
        }

    }
}
